struct LeftOver {
  /* @offset(0) */
  scale : vec2<f32>,
  /* @offset(8) */
  offset : vec2<f32>,
  /* @offset(16) */
  textureMatrix : mat4x4<f32>,
  /* @offset(80) */
  color : vec4<f32>,
}

struct Internals {
  /* @offset(0) */
  yFactor_ : f32,
  /* @offset(4) */
  textureOutputHeight_ : f32,
}

var<private> position_1 : vec2<f32>;

@group(1) @binding(3) var<uniform> x_17 : LeftOver;

var<private> vUV : vec2<f32>;

@group(1) @binding(0) var<uniform> x_62 : Internals;

var<private> gl_Position : vec4<f32>;

const x_36 = vec2<f32>(0.5f, 0.5f);

fn main_1() {
  var shiftedPosition : vec2<f32>;
  let x_12 : vec2<f32> = position_1;
  let x_22 : vec2<f32> = x_17.scale;
  let x_26 : vec2<f32> = x_17.offset;
  shiftedPosition = ((x_12 * x_22) + x_26);
  let x_33 : mat4x4<f32> = x_17.textureMatrix;
  let x_34 : vec2<f32> = shiftedPosition;
  let x_38 : vec2<f32> = ((x_34 * x_36) + x_36);
  let x_44 : vec4<f32> = (x_33 * vec4<f32>(x_38.x, x_38.y, 1.0f, 0.0f));
  vUV = vec2<f32>(x_44.x, x_44.y);
  let x_54 : vec2<f32> = shiftedPosition;
  gl_Position = vec4<f32>(x_54.x, x_54.y, 0.0f, 1.0f);
  let x_65 : f32 = x_62.yFactor_;
  let x_68 : f32 = gl_Position.y;
  gl_Position.y = (x_68 * x_65);
  return;
}

struct main_out {
  @location(0)
  vUV_1 : vec2<f32>,
  @builtin(position)
  gl_Position : vec4<f32>,
}

@vertex
fn main(@location(0) position_1_param : vec2<f32>) -> main_out {
  position_1 = position_1_param;
  main_1();
  return main_out(vUV, gl_Position);
}